validate: default-root discovery + lazy-init via quoin#5
Merged
Conversation
Scoped `quire validate` now also searches the default install root ~/.ix/filament/modules and IX_FILAMENT_MODULES_PATH (preferred over the legacy IX_SCHEMA_PATH alias) — pure filesystem discovery, no network. When that search finds zero modules it shells out once to `quoin plugin ensure-defaults` to bootstrap the default set, then reloads, so a fresh machine self-heals with no env var. Falls through to an actionable error when quoin is absent. Network is confined to the quoin child; quire links no network crate. NFR-004 is amended (CR note) to scope the no-network guarantee to quire's own process, with the lazy-init as the single documented exception (ADR-0001). FR-004 gains AC-13/AC-14; IT-081 (scoped discovery network-free) and IT-082 (quoin-absent actionable error) added and mapped in tests.md. Cargo.lock synced to the committed 0.7.3 version. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Makes scoped
quire validatework out of the box on a clean machine.~/.ix/filament/modulesandIX_FILAMENT_MODULES_PATH(preferred;IX_SCHEMA_PATHkept as the legacy alias) — the dirs wherequoininstalls the default module set andquire-rsreads by default.validateshells out once toquoin plugin ensure-defaults, reloads the registry, then validates. Ifquoinis absent it falls through to an actionable error.Why this is acceptable under NFR-004 (no-network)
The network (git clone) happens entirely in the
quoinchild — quire links no network crate, soAUDIT-003/cargo denyand the static-binary posture are untouched.NFR-004is amended via CR note to scope the guarantee to quire's own process, with the lazy-init as the single documented exception. Full rationale + alternatives in ADR-0001.Spec backport
FR-004— CR note + updated prose + new AC-13 (default-root/env discovery, network-free) and AC-14 (quoin-absent actionable error / lazy-install).NFR-004— CR note + scoped Statement/AC-2.spec/assets/adr/0001-validate-lazy-init-module-bootstrap.md(+ index).tests.mdmatrix +log.md.Tests
IT-081— scoped discovery viaIX_FILAMENT_MODULES_PATHvalidates and opens zero inet sockets understrace -fe network(proves the discovery path is network-free).IT-082— empty discovery with noquoinon PATH → exit 1 withquoin plugin ensure-defaultsguidance.Note:
Cargo.locksynced to the already-committed0.7.3version. Runtime-pairs with agent-ix/quoin# (no build-time dependency).🤖 Generated with Claude Code